//package org.ricks.kcp;
//
//import org.ricks.common.lang.Logger;
//import org.ricks.net.AioSession;
//import org.ricks.net.handler.Protocol;
//
//import java.io.ByteArrayInputStream;
//import java.io.ByteArrayOutputStream;
//import java.io.IOException;
//import java.nio.ByteBuffer;
//import java.util.zip.GZIPInputStream;
//import java.util.zip.GZIPOutputStream;
//
///**
// * @author chenwei
// * @date 2023/3/610:51
// */
//public class KcpExternalProtocol implements Protocol<Object> {
//
//    @Override
//    public Object decode(ByteBuffer readBuffer, AioSession session) throws IOException {
//        return null;
//    }
//    public static byte[] compress(byte[] data) {
//        ByteArrayOutputStream out = new ByteArrayOutputStream();
//        GZIPOutputStream gzip;
//        try {
//            gzip = new GZIPOutputStream(out);
//            gzip.write(data);
//            gzip.close();
//        } catch (IOException e) {
//            Logger.error("gzip compress error.", e);
//        }
//        return out.toByteArray();
//    }
//
//    public static byte[] uncompress(byte[] bytes) {
//        if (bytes == null || bytes.length == 0) {
//            return null;
//        }
//        ByteArrayOutputStream out = new ByteArrayOutputStream();
//        ByteArrayInputStream in = new ByteArrayInputStream(bytes);
//        try {
//            GZIPInputStream ungzip = new GZIPInputStream(in);
//            byte[] buffer = new byte[256];
//            int n;
//            while ((n = ungzip.read(buffer)) >= 0) {
//                out.write(buffer, 0, n);
//            }
//        } catch (IOException e) {
//            Logger.error("gzip uncompress error.", e);
//        }
//
//        return out.toByteArray();
//    }
//}
